kubectl Cheat Sheet

您所在的位置:网站首页 kubectl port-forward5天 kubectl Cheat Sheet

kubectl Cheat Sheet

2024-07-17 07:23:38| 来源: 网络整理| 查看: 265

kubectl Cheat Sheet

Esta página contém uma lista de comandos kubectl e flags frequentemente usados.

Kubectl AutocompleteBASHsource > ~/.bashrc # para adicionar o autocomplete permanentemente no seu shell bash.

Você também pode usar uma abreviação para o atalho para kubectl que também funciona com o auto completar:

alias k=kubectl complete -o default -F __start_kubectl k ZSHsource > ~/.zshrc # adicionar auto completar permanentemente para o seu shell zsh Uma nota sobre --all-namespaces

Acrescentar --all-namespaces acontece com bastante frequência, onde você deve estar ciente da abreviação de --all-namespaces:

kubectl -A

Contexto e Configuração do Kubectl

Define com qual cluster Kubernetes o kubectl se comunica e modifica os detalhes da configuração. Veja a documentação Autenticando entre clusters com o kubeconfig para informações detalhadas do arquivo de configuração.

kubectl config view # Mostra configurações do kubeconfig mergeadas # use vários arquivos kubeconfig ao mesmo tempo e visualize a configuração mergeada KUBECONFIG=~/.kube/config:~/.kube/kubconfig2 kubectl config view # obtenha a senha para o usuário e2e kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' kubectl config view -o jsonpath='{.users[].name}' # exibe o primeiro usuário kubectl config view -o jsonpath='{.users[*].name}' # obtém uma lista de usuários kubectl config get-contexts # exibe lista de contextos kubectl config current-context # exibe o contexto atual kubectl config use-context my-cluster-name # define o contexto padrão como my-cluster-name kubectl config set-cluster my-cluster-name # define uma entrada de cluster no kubeconfig # configura a URL para um servidor proxy a ser usado para solicitações feitas por este cliente no kubeconfig kubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url # adiciona um novo cluster ao seu kubeconfig que suporte autenticação básica kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword # salva o namespace permanentemente para todos os comandos subsequentes do kubectl nesse contexto kubectl config set-context --current --namespace=ggckad-s2 # define um contexto utilizando um nome de usuário e o namespace kubectl config set-context gce --user=cluster-admin --namespace=foo \ && kubectl config use-context gce kubectl config unset users.foo # exclui usuário foo # alias curto para definir/mostrar contexto/namespace (funciona apenas para bash e shells compatíveis com bash, contexto atual a ser definido antes de usar kn para definir namespace) alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f' alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f' Kubectl apply

apply gerencia aplicações através de arquivos que definem os recursos do Kubernetes. Ele cria e atualiza recursos em um cluster através da execução kubectl apply. Esta é a maneira recomendada para gerenciar aplicações Kubernetes em ambiente de produção. Veja a documentação do Kubectl.

Criando objetos

Manifestos Kubernetes podem ser definidos em YAML ou JSON. As extensões de arquivo .yaml, .yml, e .json podem ser usadas.

kubectl apply -f ./my-manifest.yaml # cria recurso(s) kubectl apply -f ./my1.yaml -f ./my2.yaml # cria a partir de vários arquivos kubectl apply -f ./dir # cria recurso(s) em todos os arquivos de manifesto no diretório kubectl apply -f https://git.io/vPieo # cria recurso(s) a partir de URL kubectl create deployment nginx --image=nginx # inicia uma única instância do nginx # cria um Job que exibe "Hello World" kubectl create job hello --image=busybox:1.28 -- echo "Hello World" # cria um CronJob que exibe "Hello World" a cada minuto kubectl create cronjob hello --image=busybox:1.28 --schedule="*/1 * * * *" -- echo "Hello World" kubectl explain pods # obtém a documentação de manifesto do pod # Cria vários objetos YAML a partir de stdin cat pod.yaml # Gera a especificação para executar o pod nginx e grave-a em um arquivo chamado pod.yaml kubectl attach my-pod -i # Anexa ao contêiner em execução kubectl port-forward my-pod 5000:6000 # Ouça na porta 5000 na máquina local e encaminhe para a porta 6000 no my-pod kubectl exec my-pod -- ls / # Executa comando no pod existente (1 contêiner) kubectl exec --stdin --tty my-pod -- /bin/sh # Acesso de shell interativo a um pod em execução (apenas 1 contêiner) kubectl exec my-pod -c my-container -- ls / # Executa comando no pod existente (pod com vários contêineres) kubectl top pod POD_NAME --containers # Mostra métricas para um determinado pod e seus contêineres kubectl top pod POD_NAME --sort-by=cpu # Mostra métricas para um determinado pod e classificá-lo por 'cpu' ou 'memória' Copiando arquivos e diretórios de e para contêinereskubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir # Copia o diretório local /tmp/foo_dir para /tmp/bar_dir em um pod remoto no namespace atual kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto em um contêiner específico kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente Nota:kubectl cp requer que o binário 'tar' esteja presente em sua imagem de contêiner. Se 'tar' não estiver presente, kubectl cp falhará. Para casos de uso avançado, como links simbólicos, expansão curinga ou preservação do modo de arquivo, considere usar kubectl exec.tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar # Copia o arquivo local /tmp/foo para /tmp/bar em um pod remoto no namespace my-namespace kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar # Copia /tmp/foo de um pod remoto para /tmp/bar localmente Interagindo com implantações e serviçoskubectl logs deploy/my-deployment # despeja logs de pod para uma implantação (caso de contêiner único) kubectl logs deploy/my-deployment -c my-container # despeja logs de pod para uma implantação (caso de vários contêineres) kubectl port-forward svc/my-service 5000 # escuta na porta local 5000 e encaminhe para a porta 5000 no back-end do serviço kubectl port-forward svc/my-service 5000:my-service-port # escuta na porta local 5000 e encaminhe para a porta de destino do serviço com o nome kubectl port-forward deploy/my-deployment 5000:6000 # escuta na porta local 5000 e encaminhe para a porta 6000 em um pod criado por kubectl exec deploy/my-deployment -- ls # executa o comando no primeiro pod e primeiro contêiner na implantação (casos de um ou vários contêineres) Interagindo com Nós e Clusterkubectl cordon my-node # Marca o nó my-node como não agendável kubectl drain my-node # Drena o nó my-node na preparação para manutenção kubectl uncordon my-node # Marca nó my-node como agendável kubectl top node my-node # Mostra métricas para um determinado nó kubectl cluster-info # Exibe endereços da master e serviços kubectl cluster-info dump # Despeja o estado atual do cluster no stdout kubectl cluster-info dump --output-directory=/path/to/cluster-state # Despeja o estado atual do cluster em /path/to/cluster-state # Veja os taints existentes nos nós atuais. kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect' # Se uma `taint` com essa chave e efeito já existir, seu valor será substituído conforme especificado. kubectl taint nodes foo dedicated=special-user:NoSchedule Tipos de Recursos

Lista todos os tipos de recursos suportados junto com seus nomes abreviados, grupo de API, sejam eles namespaced e Kind:

kubectl api-resources

Outras operações para explorar os recursos da API:

kubectl api-resources --namespaced=true # Todos os recursos com namespace kubectl api-resources --namespaced=false # Todos os recursos sem namespace kubectl api-resources -o name # Todos os recursos com saída simples (apenas o nome do recurso) kubectl api-resources -o wide # Todos os recursos com saída expandida (também conhecida como "ampla") kubectl api-resources --verbs=list,get # Todos os recursos que suportam os verbos de API "list" e "get" kubectl api-resources --api-group=extensions # Todos os recursos no grupo de API "extensions" Formatação de saída

Para enviar detalhes para a janela do terminal em um formato específico, adicione a flag -o (ou --output) para um comando kubectl suportado.

Formato de saídaDescrição-o=custom-columns=Exibe uma tabela usando uma lista separada por vírgula de colunas personalizadas-o=custom-columns-file=Exibe uma tabela usando o modelo de colunas personalizadas no arquivo -o=jsonSaída de um objeto de API formatado em JSON-o=jsonpath=Exibe os campos definidos em uma expressão jsonpath-o=jsonpath-file=Exibe os campos definidos pela expressão jsonpath no arquivo -o=nameExibe apenas o nome do recurso e nada mais-o=wideSaída no formato de texto sem formatação com qualquer informação adicional e, para Pods, o nome do nó está incluído-o=yamlSaída de um objeto de API formatado em YAML

Exemplos usando -o=custom-columns:

# Todas as imagens em execução em um cluster kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image' # Todas as imagens em execução no namespace: padrão, agrupadas por pod kubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image" # Todas as imagens excluindo "registry.k8s.io/coredns:1.6.2" kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image' # Todos os campos sob metadados, independentemente do nome kubectl get pods -A -o=custom-columns='DATA:metadata.*'

Mais exemplos na documentação de referência do kubectl.

Verbosidade de saída do Kubectl e depuração

A verbosidade do Kubectl é controlado com as flags -v ou --v seguidos por um número inteiro representando o nível do log. As convenções gerais de log do Kubernetes e os níveis de log associados são descritos aqui.

VerbosidadeDescrição--v=0Geralmente útil para sempre estar visível para um operador de cluster.--v=1Um nível de log padrão razoável se você não deseja verbosidade.--v=2Informações úteis sobre o estado estacionário sobre o serviço e mensagens importantes de log que podem se correlacionar com alterações significativas no sistema. Este é o nível de log padrão recomendado para a maioria dos sistemas.--v=3Informações estendidas sobre alterações.--v=4Detalhamento no nível de debugging.--v=5Verbosidade do nível de rastreamento.--v=6Exibe os recursos solicitados.--v=7Exibe cabeçalhos de solicitação HTTP.--v=8Exibe conteúdo da solicitação HTTP.--v=9Exibe o conteúdo da solicitação HTTP sem o truncamento do conteúdo.Próximos passos

Leia a visão geral do kubectl e aprenda sobre JsonPath.

Veja as opções do kubectl.

Leia as Convenções de uso do kubectl para entender como usá-lo em scripts reutilizáveis.

Ver mais comunidade kubectl cheatsheets.

Comentários

Esta página foi útil?

Obrigado pelo feedback. Se você tiver uma pergunta específica sobre como utilizar o Kubernetes, faça em Stack Overflow. Abra um bug no repositório do GitHub se você deseja relatar um problema ou sugerir uma melhoria.

Última modificação March 09, 2023 at 9:40 AM PST: Update and standardize pt-br cheatsheet (bc812e00d6)


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭